#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h`>

#ifdef __cplusplus
typedef int (*FUNCPTR)(...);
#else
typedef int (*FUNCPTR)();
#endif

int func1()
{
	printf("%s is called.\n",__func__);
	return 1;
}

int func2(int i)
{
	printf("%s is called.\n",__func__);
	return 2;
}

int func3(int i,double d)
{
	printf("%s is called.\n",__func__);
	return 3;
}

int main()
{
	FUNCPTR fp;
	fp = func1;
	fp();
	fp = func2;
	fp(2);
	fp = func3;
	fp(3,3.3);
	return 0;
}
